package com.le.tester.book.effectivejava3rdchinese.articlethirtyone;

import java.util.Collection;


/**
 * createTime：2022/8/18 9:27
 * description：使用List<T>对于泛型而言，在使用的时候，会使得类型并不能匹配因为严格区分了List<String>和List<Object>
 *     建议使用的是List<? extend T>来增加灵活性并且在运行的时候使用了泛型的擦除
 */
public class LStack<E> {

    public LStack() {
    }

    public void push(E e) {
    }

    public E pop() {
        return null;
    }

    public boolean isEmpty() {
        return false;
    }

    //first method no use
    public void pushAll(Iterable<E> src) {

        for (E eItem : src) {
            push(eItem);
        }
    }

    //second method no use Iterable is out
    public void pushAllPlus(Iterable<? extends E> src) {
        for (E eItem : src) {
            push(eItem);
        }
    }

    //first method
    public void popAll(Collection<E> dst) {
        while (!isEmpty()) {
            dst.add(pop());
        }
    }

    public static void main(String[] args) {

        LStack<Number> numberLStack = new LStack<>();

    }


}
